package EnumDemo;

/**
 * @Description :
 * @author: cww
 * @DateTime: 2018-07-29 10:31
 * 定义一个对象，这个对象里面规定好了周一到周日分别用0-6来表示，不让外部创建，需要用到的值在改对象中都定义好
 */

public class WeakDay {
    /**
     * 1.将构造函数私有化，目的不让外部创建该对象
     */
    private WeakDay(){}

    /**
     * 2.因为构造函数私有化，所以要自行创建所需要使用的对象类型的值
     * 在外部调用的时候只能调用该类中的常量
     * 每一个枚举值都是一个对象
     */
    public final static WeakDay SUM = new WeakDay();
    public final static WeakDay MON = new WeakDay();
    public final static WeakDay TUE = new WeakDay();

    /**
     * 3.对象方法
     * 使用if else方法返回
     * @return
     */
    public WeakDay netDay(){
        if (this == SUM) {
            return MON;
        }else if (this == MON){
            return TUE;
        }else {
            return SUM;
        }
    }

    /**
     * 4.nextDay用独立的方法写
     * 每一个值对象都有自己的一个方法进行返回
     * 那就要将nextDay进行抽象，具体实现让子类自己去实现
     * 见WeakDay_abstract
     */



    /**
     * 复写toString方法
     * @return
     */
    @Override
    public String toString(){
        return (this == SUM)?"SUM":(this == MON)?"MON":"TUE";
    }
}
